package com.erp.order.service;


import com.ruoyi.order.api.domain.ErpSellerChildOrder;
import com.ruoyi.order.api.domain.dto.EvaluationDto;
import com.erp.order.domain.bo.ErpSellerChildOrderBo;
import com.erp.order.domain.vo.ErpSellerChildOrderVo;
import com.ruoyi.ae.api.domain.dto.DeclareProductDTOS;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.web.oldPage.TableDataInfo;
import com.ruoyi.order.api.domain.ErpSellerChildOrder;
import com.ruoyi.order.api.domain.dto.EvaluationDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 商户子订单Service接口
 *
 * @author erp
 * @date 2023-03-28
 */
public interface IErpSellerChildOrderService {

    /**
     * 根据订单号获取子订单信息列表
     */
    List<ErpSellerChildOrder> getChildOrderListByOrderId(Long orderId);

    /**
     * 根据子订单号获取子订单信息
     */
    ErpSellerChildOrder getChildOrderByOrderId(String childOrderId);
    
    /**
     * 判断商品是否出单
     * @param productIds 商品id
     * @param moduleReplace 前几天
     * @return 出单量
     */
    Boolean isOrderPlacedForProduct(String productIds, Integer moduleReplace);

    /**
     * 根据店铺cn码查看过去几天是否有订单
     * @param beforeDay
     * @param storeUserName
     * @param shieldProductIdList
     * @return
     */
    List<ErpSellerChildOrder> getOrdersByDay(Integer beforeDay, String storeUserName, List<String> shieldProductIdList);

    /**
     * 根据类型获取店铺运营数据
     * @param productId
     * @param dataType
     * @return
     */
    EvaluationDto getProductOperationsData(Long productId, String dataType);

    /**
     * 判断上一单是否是测评单
     * @param storeUserName
     * @param skuCode
     * @return
     */
    Integer selectIsEvaluationBySkuCode(String storeUserName, String skuCode);

//
//    /**
//     * 查询商户子订单
//     */
//    ErpSellerChildOrderVo queryById(Long id);
//
//    /**
//     * 查询商户子订单列表
//     */
//    TableDataInfo<ErpSellerChildOrderVo> queryPageList(ErpSellerChildOrderBo bo, PageQuery pageQuery);
//
//    /**
//     * 查询商户子订单列表
//     */
//    List<ErpSellerChildOrderVo> queryList(ErpSellerChildOrderBo bo);
//
//    /**
//     * 新增商户子订单
//     */
//    Boolean insertByBo(ErpSellerChildOrderBo bo);
//
//    /**
//     * 修改商户子订单
//     */
//    Boolean updateByBo(ErpSellerChildOrderBo bo);
//
//    /**
//     * 校验并批量删除商户子订单信息
//     */
//    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
//
////    List<ErpCollectProductSkuPackageInfo> getChildOrderProduct(Long orderId);
//
//    List<DeclareProductDTOS> selectChildOrderListByChildOrderIds(String[] childIdList);
//
//    List<String> getChildOrderIdProduct(Long orderId);

    /**
     * 根据skuCode获取相应时间出单量
     */
    Map<String, Object> getOrderCountByCode(String skuCode);

    List<ErpSellerChildOrder> getChildByOrder(Long orderId);


//    List<ErpNeedPriceProductInfoDto> selectNeedPriceRiseProductInfo(String storeUserName, String zeroHour);
//
//    List<ErpNeedPriceProductInfoDto> selectNeedPriceOffProductInfo(Long id, Integer priceOffPeriod, Integer statisticalPeriod);
}

